package com.sharkpro.designPattern.myIO;

import lombok.extern.slf4j.Slf4j;

import java.io.*;

/**
 * @author jianxin.wei
 * @description 原生字符输入输出流
 * @date 2024/12/18 10:30
 */
@Slf4j
public class ReadAndWriterStream {
    private static final String FILENAME="E:\\shark\\All\\sharkPro\\src\\main\\java\\com\\sharkpro\\designPattern\\myAdapter\\test.txt";

    // 字符流输出默认是UTF-8
    public static void main(String[] args) throws IOException {
        // 使用字符流获取文件内容
        FileReader fileReader = new FileReader(FILENAME);

        // 使用字符流-获取单个字符
//        int content = 0;
//        while ((content=fileReader.read()) !=-1){
//            System.out.println((char) content);
//        }

        // 使用字符流-获取多个字符
//        char[] chars = new char[5];
//        int len=0;
//        while ((len=fileReader.read(chars))!=-1){
//            log.info(new String(chars , 0 ,len));
//        }

        // 使用字符流-输出文本内容
//        FileWriter fileWriter = new FileWriter(FILENAME);
        // 使用字符流输出文件内容-在源文件的后面追加内容
        FileWriter fileWriter = new FileWriter(FILENAME,true);


//        fileWriter.write("\n他是英国人");
//         如果FileWriter是追加模式，则append方法会追加内容
//        fileWriter.append("\nhello2 world2");
//        fileWriter.flush();
//        fileWriter.close();



        // 使用字符流缓冲区-获取单个文本
//        BufferedReader reader = new BufferedReader(fileReader);
//        int content ;
//        while ((content = reader.read())!= -1 ){
//            log.info(String.valueOf((char) content));
//        }


        // 使用字符流缓冲区-获取一行String文本
//        BufferedReader reader = new BufferedReader(fileReader);
//        String contentLine;
//        while ((contentLine = reader.readLine())!=null){
//            log.info(contentLine);
//        }

        // 使用字符流缓冲区-输出文本内容
        BufferedWriter writer = new BufferedWriter(fileWriter);
        writer.write("我是中国人");
        writer.append("\nBufferedWriter1");
        writer.flush();
        writer.close();

        PrintWriter printWriter = new PrintWriter(fileWriter);
        printWriter.println("我是中国人");


    }
}
